
! KGEN-generated Fortran source file
!
! Filename    : mo_prod_loss.F90
! Generated at: 2015-05-13 11:02:22
! KGEN version: 0.4.10



    MODULE mo_prod_loss
        USE kgen_utils_mod, ONLY : kgen_dp, check_t, kgen_init_check, kgen_print_check
        USE shr_kind_mod, ONLY: r8 => shr_kind_r8
        PRIVATE
        PUBLIC imp_prod_loss
        CONTAINS

        ! write subroutines
        ! No subroutines
        ! No module extern variables


        SUBROUTINE imp_prod_loss(prod, loss, y, rxt, het_rates)
            IMPLICIT NONE
            !--------------------------------------------------------------------
            ! ... dummy args
            !--------------------------------------------------------------------
            REAL(KIND=r8), dimension(:), intent(out) :: prod
            REAL(KIND=r8), dimension(:), intent(out) :: loss
            REAL(KIND=r8), intent(in) :: y(:)
            REAL(KIND=r8), intent(in) :: rxt(:)
            REAL(KIND=r8), intent(in) :: het_rates(:)
            !--------------------------------------------------------------------
            ! ... loss and production for Implicit method
            !--------------------------------------------------------------------
            loss(123) = (rxt(119)* y(2) +rxt(192)* y(6) +rxt(195)* y(7) +rxt(164)* y(19)                   +rxt(293)* y(37) +rxt(&
            314)* y(48) +rxt(336)* y(60) +rxt(342)* y(61)                   +rxt(360)* y(65) +rxt(392)* y(77) +rxt(405)* y(107) &
            +rxt(408)                  * y(108) +rxt(207)* y(127) +rxt(234)* y(128) +rxt(169)* y(129)                   +rxt(177)&
            * y(130) +rxt(137)* y(157) + rxt(3) + rxt(4)                   + het_rates(1))* y(1)
            prod(123) = (.200_r8*rxt(336)*y(60) +.200_r8*rxt(342)*y(61) +                  .100_r8*rxt(360)*y(65))*y(1) + (&
            .250_r8*rxt(304)*y(133) +                  .250_r8*rxt(352)*y(141))*y(130) +rxt(118)*y(3)*y(2)
            loss(121) = (rxt(119)* y(1) + 2._r8*rxt(120)* y(2) +rxt(118)* y(3) +rxt(190)                  * y(6) + (rxt(193) +rxt(&
            194))* y(7) +rxt(201)* y(8) +rxt(271)* y(16)                   +rxt(175)* y(18) +rxt(179)* y(20) +rxt(214)* y(24) &
            +rxt(227)* y(27)                   +rxt(228)* y(28) +rxt(231)* y(29) +rxt(237)* y(31) +rxt(247)* y(32)                &
               +rxt(248)* y(33) +rxt(249)* y(34) +rxt(401)* y(106) +rxt(168)                  * y(129) +rxt(176)* y(130) + (rxt(&
            437) +rxt(438))* y(148) +rxt(444)                  * y(150) + rxt(92) + rxt(93) + rxt(94) + rxt(105) + rxt(106)       &
                        + rxt(107) + het_rates(2))* y(2)
            prod(121) = (rxt(1) +2.000_r8*rxt(2) +rxt(98) +rxt(99) +rxt(100) +                  2.000_r8*rxt(103) +rxt(110) +rxt(&
            111) +rxt(112) +2.000_r8*rxt(115) +                  rxt(132)*y(157) +rxt(133)*y(157) +rxt(185)*y(5) +rxt(404)*y(107) &
            +                  rxt(407)*y(108) +rxt(435)*y(151) +rxt(443)*y(150))*y(3)                   + (rxt(186)*y(6) +rxt(&
            187)*y(7) +rxt(440)*y(149))*y(5)                   + (rxt(447)*y(152) +1.150_r8*rxt(448)*y(149))*y(153) +rxt(4)*y(1)  &
                             +rxt(6)*y(6) +rxt(8)*y(7) +rxt(12)*y(8) +rxt(10)*y(11)                   +rxt(167)*y(130)*y(19) +rxt(&
            24)*y(24) +rxt(25)*y(25) +rxt(32)*y(31)                   +rxt(88)*y(104) +rxt(91)*y(108) +rxt(89)*y(109) +rxt(171)*y(&
            129)                  *y(129) +rxt(131)*y(157) +rxt(21)*y(158)
            loss(122) = (rxt(137)* y(1) + (rxt(132) +rxt(133))* y(3) + (rxt(135) +                  rxt(136))* y(4) + (rxt(156) &
            +rxt(157) +rxt(158))* y(12) +rxt(159)                  * y(18) +rxt(160)* y(27) +rxt(161)* y(32) +rxt(162)* y(35) &
            +rxt(147)                  * y(80) +rxt(138)* y(81) +rxt(139)* y(82) +rxt(140)* y(83) +rxt(143)                  * y(&
            84) +rxt(146)* y(85) +rxt(149)* y(87) +rxt(148)* y(88) +rxt(144)                  * y(89) +rxt(145)* y(90) +rxt(141)* &
            y(91) +rxt(142)* y(92) +rxt(150)                  * y(93) +rxt(151)* y(94) +rxt(152)* y(95) +rxt(153)* y(96) +rxt(154)&
                              * y(100) +rxt(155)* y(101) +rxt(134)* y(158) + rxt(131)                   + het_rates(157))* y(157)
            prod(122) = (rxt(1) +rxt(182)*y(154))*y(3) +rxt(3)*y(1)                   +.850_r8*rxt(448)*y(153)*y(149) +rxt(20)*y(&
            158)
            loss(120) = (rxt(118)* y(2) +rxt(185)* y(5) +rxt(163)* y(19) +rxt(404)                  * y(107) +rxt(407)* y(108) &
            +rxt(291)* y(135) +rxt(445)* y(148)                   + (rxt(442) +rxt(443))* y(150) +rxt(435)* y(151) +rxt(182)* y(&
            154)                   +rxt(128)* y(156) +rxt(132)* y(157) + rxt(1) + rxt(2) + rxt(96)                   + rxt(98) + &
            rxt(99) + rxt(100) + rxt(103) + rxt(108) + rxt(110)                   + rxt(111) + rxt(112) + rxt(115) + het_rates(3))&
            * y(3)
            prod(120) = (rxt(166)*y(19) +rxt(170)*y(129) +rxt(176)*y(2) +                  2.000_r8*rxt(177)*y(1) +rxt(178)*y(130)&
             +rxt(203)*y(8) +                  rxt(210)*y(127) +rxt(217)*y(24) +rxt(235)*y(128) +rxt(239)*y(31) +                 &
             rxt(274)*y(13) +rxt(296)*y(132) +rxt(317)*y(136) +rxt(322)*y(137) +                  rxt(326)*y(138) +.750_r8*rxt(&
            352)*y(141))*y(130) + (rxt(4) +                  2.000_r8*rxt(119)*y(2) +2.000_r8*rxt(137)*y(157) +rxt(164)*y(19) +   &
                           rxt(169)*y(129) +rxt(192)*y(6) +rxt(195)*y(7) +rxt(207)*y(127) +                  rxt(234)*y(128) +rxt(&
            405)*y(107) +rxt(408)*y(108))*y(1)                   + (rxt(120)*y(2) +rxt(127)*y(156) +rxt(168)*y(129) +rxt(193)*y(7)&
             +                  rxt(201)*y(8) +rxt(214)*y(24) +rxt(237)*y(31))*y(2)                   + (rxt(216)*y(129) +rxt(221)&
            *y(24) +rxt(222)*y(24) +rxt(243)*y(31) +                  rxt(244)*y(31))*y(24) + (rxt(129) +rxt(130) +2.000_r8*rxt(&
            128)*y(3))                  *y(156) +rxt(136)*y(157)*y(4) +rxt(189)*y(7)*y(5) +rxt(441)*y(149)                  *y(6) &
            +rxt(13)*y(8) +rxt(205)*y(129)*y(10) +rxt(245)*y(31)*y(31)                   +rxt(126)*y(155)
            loss(28) = (rxt(124)* y(1) +rxt(121)* y(2) +rxt(122)* y(3) +rxt(125)* y(97)                   + rxt(123) + rxt(126) + &
            het_rates(155))* y(155)
            prod(28) = rxt(132)*y(157)*y(3)
            loss(27) = (rxt(127)* y(2) +rxt(128)* y(3) + rxt(129) + rxt(130)                   + het_rates(156))* y(156)
            prod(27) = (rxt(123) +rxt(125)*y(97) +rxt(121)*y(2) +rxt(122)*y(3) +                  rxt(124)*y(1))*y(155) +rxt(3)*y(&
            1)
            loss(108) = (rxt(175)* y(2) +rxt(251)* y(103) +rxt(208)* y(127) +rxt(173)                  * y(129) +rxt(159)* y(157) &
            + het_rates(18))* y(18)
            prod(108) = rxt(158)*y(157)*y(12) +rxt(18)*y(16) +rxt(166)*y(130)*y(19)                   +rxt(20)*y(158)
            loss(103) = ((rxt(267) +rxt(268))* y(129) + het_rates(17))* y(17)
            prod(103) = (rxt(17) +rxt(18) +rxt(212)*y(127) +rxt(236)*y(128) +                  rxt(269)*y(8) +rxt(270)*y(129) &
            +rxt(271)*y(2))*y(16)                   + (.500_r8*rxt(293)*y(37) +.560_r8*rxt(314)*y(48) +                  &
            .050_r8*rxt(336)*y(60) +.200_r8*rxt(342)*y(61) +                  .300_r8*rxt(360)*y(65))*y(1) + (.350_r8*rxt(286)*y(&
            98) +                  rxt(309)*y(44) +rxt(330)*y(54) +rxt(402)*y(106))*y(129)                   + (.220_r8*rxt(343)&
            *y(6) +.220_r8*rxt(345)*y(8) +                  .110_r8*rxt(347)*y(13) +.220_r8*rxt(348)*y(133))*y(142)               &
                + (.500_r8*rxt(378)*y(6) +.500_r8*rxt(379)*y(8) +                  .200_r8*rxt(381)*y(13) +.500_r8*rxt(382)*y(133)&
            )*y(145) + (rxt(74) +                  rxt(331)*y(8))*y(54) + (rxt(90) +rxt(401)*y(2))*y(106) +rxt(61)*y(41)          &
                     +rxt(79)*y(43) +2.000_r8*rxt(82)*y(44) +.700_r8*rxt(68)*y(60)                   +1.340_r8*rxt(67)*y(61) &
            +.450_r8*rxt(81)*y(67) +rxt(76)*y(70)                   +rxt(254)*y(127)*y(79) +rxt(439)*y(151)*y(97)
            loss(92) = (rxt(185)* y(3) +rxt(186)* y(6) + (rxt(187) +rxt(188) +rxt(189))                  * y(7) +rxt(184)* y(129) &
            +rxt(440)* y(149) + rxt(95) + het_rates(5))                  * y(5)
            prod(92) = (rxt(183)*y(154) +rxt(444)*y(150))*y(2)                   + (.200_r8*rxt(447)*y(152) +1.100_r8*rxt(449)*y(&
            148))*y(153)                   +rxt(442)*y(150)*y(3) +rxt(6)*y(6) +rxt(436)*y(151)
            loss(129) = (rxt(192)* y(1) +rxt(190)* y(2) +rxt(186)* y(5) +rxt(200)* y(8)                   +rxt(273)* y(13) +rxt(&
            219)* y(24) +rxt(240)* y(31) +rxt(368)* y(69)                   +rxt(191)* y(130) +rxt(281)* y(131) +rxt(295)* y(132) &
            +rxt(302)                  * y(133) +rxt(289)* y(134) +rxt(316)* y(136) +rxt(321)* y(137)                   +rxt(325)&
            * y(138) +rxt(334)* y(139) +rxt(338)* y(140) +rxt(350)                  * y(141) + (rxt(343) +rxt(344))* y(142) +rxt(&
            375)* y(143) +rxt(362)                  * y(144) +rxt(378)* y(145) +rxt(386)* y(146) +rxt(394)* y(147)                &
               +rxt(441)* y(149) + rxt(6) + rxt(7) + het_rates(6))* y(6)
            prod(129) = (rxt(8) +.500_r8*rxt(399) +2.000_r8*rxt(188)*y(5) +                  rxt(193)*y(2) +rxt(409)*y(108))*y(7) &
            + (rxt(182)*y(154) +                  rxt(185)*y(5))*y(3) +2.000_r8*rxt(135)*y(157)*y(4) +rxt(184)*y(129)             &
                 *y(5) +rxt(13)*y(8) +rxt(10)*y(11) +rxt(446)*y(149)
            loss(130) = (rxt(195)* y(1) + (rxt(193) +rxt(194))* y(2) + (rxt(187) +                  rxt(188) +rxt(189))* y(5) &
            +rxt(196)* y(8) +rxt(220)* y(24) +rxt(241)                  * y(31) +rxt(390)* y(76) +rxt(409)* y(108) +rxt(198)* y(&
            129)                   +rxt(204)* y(130) +rxt(303)* y(133) +rxt(356)* y(141) + rxt(8)                   + rxt(399) + &
            het_rates(7))* y(7)
            prod(130) = (rxt(190)*y(2) +rxt(191)*y(130) +rxt(192)*y(1) +                  2.000_r8*rxt(200)*y(8) +rxt(219)*y(24) &
            +rxt(240)*y(31) +                  rxt(273)*y(13) +rxt(281)*y(131) +rxt(289)*y(134) +rxt(295)*y(132) +                &
              rxt(302)*y(133) +rxt(316)*y(136) +rxt(321)*y(137) +rxt(325)*y(138) +                  rxt(334)*y(139) +rxt(338)*y(&
            140) +rxt(343)*y(142) +rxt(350)*y(141) +                  .920_r8*rxt(362)*y(144) +1.206_r8*rxt(368)*y(69) +          &
                    .900_r8*rxt(375)*y(143) +rxt(378)*y(145) +.900_r8*rxt(386)*y(146) +                  rxt(394)*y(147))*y(6) + (&
            rxt(12) +rxt(201)*y(2) +rxt(202)*y(129) +                  rxt(203)*y(130) +rxt(345)*y(142) +rxt(351)*y(141) +rxt(363)&
            *y(144) +                  1.206_r8*rxt(369)*y(69) +rxt(373)*y(70) +rxt(379)*y(145) +                  rxt(393)*y(77))&
            *y(8) + (rxt(15) +rxt(206) +rxt(205)*y(129))*y(10)                   + (rxt(9) +rxt(197))*y(11) + (.600_r8*rxt(64) &
            +rxt(311))*y(47)                   + (rxt(65) +rxt(357))*y(63) + (rxt(76) +.400_r8*rxt(372)*y(129))                  &
            *y(70) +.700_r8*rxt(390)*y(76)*y(7) +rxt(11)*y(9) +rxt(30)*y(29)                   +rxt(36)*y(34) +rxt(332)*y(129)*y(&
            64) +.206_r8*rxt(370)*y(130)*y(69)
            loss(131) = (rxt(169)* y(1) +rxt(168)* y(2) +rxt(184)* y(5) +rxt(198)* y(7)                   +rxt(202)* y(8) +rxt(&
            199)* y(9) +rxt(205)* y(10) +rxt(266)* y(12)                   +rxt(278)* y(14) +rxt(277)* y(15) +rxt(270)* y(16) + (&
            rxt(267) +                  rxt(268))* y(17) +rxt(173)* y(18) +rxt(174)* y(20) + (rxt(215) +                  rxt(216)&
            )* y(24) +rxt(226)* y(27) +rxt(230)* y(28) +rxt(232)* y(29)                   +rxt(238)* y(31) +rxt(246)* y(32) +rxt(&
            180)* y(35) +rxt(181)* y(36)                   +rxt(288)* y(37) +rxt(287)* y(38) +rxt(299)* y(39) +rxt(294)* y(40)    &
                           +rxt(300)* y(41) +rxt(310)* y(42) +rxt(308)* y(43) +rxt(309)* y(44)                   +rxt(307)* y(45) &
            +rxt(312)* y(47) +rxt(313)* y(48) +rxt(320)* y(49)                   +rxt(319)* y(50) +rxt(324)* y(51) +rxt(323)* y(&
            52) +rxt(329)* y(53)                   +rxt(330)* y(54) +rxt(328)* y(55) +rxt(333)* y(56) +rxt(371)* y(57)            &
                   +rxt(337)* y(58) +rxt(340)* y(59) +rxt(335)* y(60) +rxt(341)* y(61)                   +rxt(349)* y(62) +rxt(&
            358)* y(63) +rxt(332)* y(64) +rxt(359)* y(65)                   +rxt(377)* y(66) +rxt(374)* y(68) +rxt(372)* y(70) &
            +rxt(383)* y(71)                   +rxt(365)* y(72) +rxt(385)* y(73) +rxt(389)* y(74) +rxt(388)* y(75)                &
               +rxt(391)* y(77) +rxt(396)* y(78) +rxt(255)* y(79) +rxt(258)* y(80)                   +rxt(257)* y(84) +rxt(256)* &
            y(86) +rxt(260)* y(89) +rxt(261)* y(90)                   +rxt(263)* y(95) +rxt(262)* y(96) +rxt(286)* y(98) +rxt(279)&
            * y(99)                   +rxt(413)* y(104) + (rxt(415) +rxt(416))* y(105) +rxt(402)* y(106)                   +rxt(&
            403)* y(107) +rxt(406)* y(108) + 2._r8*(rxt(171) +rxt(172))                  * y(129) +rxt(170)* y(130) + het_rates(&
            129))* y(129)
            prod(131) = (rxt(164)*y(19) +rxt(177)*y(130) +.120_r8*rxt(293)*y(37) +                  .330_r8*rxt(314)*y(48) &
            +.080_r8*rxt(336)*y(60) +                  .215_r8*rxt(342)*y(61) +.270_r8*rxt(360)*y(65) +                  &
            .700_r8*rxt(392)*y(77))*y(1) + (rxt(175)*y(18) +rxt(176)*y(130) +                  rxt(179)*y(20) +rxt(227)*y(27) &
            +rxt(228)*y(28) +rxt(247)*y(32) +                  rxt(248)*y(33) +rxt(271)*y(16))*y(2) + (rxt(156)*y(12) +           &
                   2.000_r8*rxt(134)*y(158) +rxt(159)*y(18) +rxt(160)*y(27) +                  rxt(161)*y(32) +rxt(162)*y(35))*y(&
            157) + (.300_r8*rxt(278)*y(14) +                  .650_r8*rxt(286)*y(98) +.500_r8*rxt(299)*y(39) +                  &
            .500_r8*rxt(323)*y(52) +.100_r8*rxt(349)*y(62))*y(129)                   + (2.000_r8*rxt(165)*y(19) +rxt(191)*y(6) &
            +rxt(203)*y(8) +                  rxt(211)*y(127))*y(130) + (rxt(19) +rxt(250)*y(103))*y(158)                   &
            +.500_r8*rxt(399)*y(7) +rxt(11)*y(9) +rxt(14)*y(10) +rxt(16)*y(14)                   +2.000_r8*rxt(22)*y(20) +rxt(27)&
            *y(28) +rxt(33)*y(33) +rxt(69)*y(39)                   +rxt(63)*y(45) +rxt(70)*y(46) +rxt(71)*y(50) +rxt(62)*y(52) &
            +rxt(72)                  *y(55) +rxt(84)*y(59) +rxt(83)*y(66) +rxt(75)*y(71) +rxt(85)*y(75)                   +rxt(&
            86)*y(78)
            loss(132) = (rxt(201)* y(2) +rxt(200)* y(6) +rxt(196)* y(7) +rxt(269)* y(16)                   +rxt(301)* y(41) +rxt(&
            315)* y(48) +rxt(331)* y(54) +rxt(361)* y(65)                   +rxt(369)* y(69) +rxt(373)* y(70) +rxt(393)* y(77) &
            +rxt(417)* y(105)                   +rxt(202)* y(129) +rxt(203)* y(130) +rxt(351)* y(141) +rxt(345)                  &
            * y(142) +rxt(363)* y(144) +rxt(379)* y(145) + rxt(12) + rxt(13)                   + rxt(398) + het_rates(8))* y(8)
            prod(132) = (rxt(29) +rxt(231)*y(2) +rxt(232)*y(129) +rxt(233)*y(127))*y(29)                   + (rxt(9) +rxt(10) &
            +rxt(197))*y(11) + (rxt(199)*y(9) +                  rxt(312)*y(47) +.500_r8*rxt(358)*y(63))*y(129) + (rxt(194)*y(7) &
            +                  rxt(249)*y(34))*y(2) +rxt(195)*y(7)*y(1) +rxt(253)*y(103)*y(9)                   +rxt(14)*y(10) &
            +rxt(35)*y(34) +.400_r8*rxt(64)*y(47)
            loss(133) = (rxt(253)* y(103) +rxt(199)* y(129) + rxt(11) + het_rates(9))                  * y(9)
            prod(133) = (rxt(419) +rxt(425) +rxt(430) +rxt(421)*y(27) +rxt(426)*y(27) +                  rxt(432)*y(27))*y(29) + (&
            rxt(398) +rxt(269)*y(16) +rxt(301)*y(41) +                  rxt(331)*y(54) +rxt(417)*y(105))*y(8) + (2.000_r8*rxt(397)&
             +                  2.000_r8*rxt(418) +2.000_r8*rxt(424) +2.000_r8*rxt(429))*y(11)                   + (rxt(420) +rxt(&
            428) +rxt(431))*y(34) + (.500_r8*rxt(399) +                  rxt(198)*y(129))*y(7)
            loss(60) = (rxt(205)* y(129) + rxt(14) + rxt(15) + rxt(206) + het_rates(10))                  * y(10)
            prod(60) = rxt(204)*y(130)*y(7)
            loss(40) = (+ rxt(9) + rxt(10) + rxt(197) + rxt(397) + rxt(418) + rxt(424)                   + rxt(429) + het_rates(&
            11))* y(11)
            prod(40) = rxt(196)*y(8)*y(7)
            loss(119) = (rxt(273)* y(6) + 2._r8*(rxt(275) +rxt(276))* y(13) +rxt(218)                  * y(24) +rxt(274)* y(130) &
            +rxt(297)* y(132) +rxt(305)* y(133)                   +rxt(318)* y(136) +rxt(327)* y(138) +rxt(353)* y(141) +rxt(347) &
                             * y(142) +rxt(366)* y(144) +rxt(381)* y(145) + het_rates(13))* y(13)
            prod(119) = (rxt(302)*y(6) +.900_r8*rxt(305)*y(13) +                  2.000_r8*rxt(306)*y(133) +rxt(348)*y(142) +rxt(&
            354)*y(141) +                  rxt(367)*y(144) +rxt(382)*y(145))*y(133) + (rxt(156)*y(157) +                  rxt(213)&
            *y(127) +rxt(252)*y(103) +rxt(266)*y(129))*y(12)                   + (.700_r8*rxt(278)*y(14) +rxt(294)*y(40))*y(129)  &
                             +.310_r8*rxt(314)*y(48)*y(1) +rxt(61)*y(41) +rxt(63)*y(45)                   +.400_r8*rxt(64)*y(47) &
            +rxt(73)*y(51) +.300_r8*rxt(68)*y(60)
            loss(50) = (rxt(278)* y(129) + rxt(16) + het_rates(14))* y(14)
            prod(50) = rxt(274)*y(130)*y(13)
            loss(30) = (rxt(180)* y(129) +rxt(162)* y(157) + het_rates(35))* y(35)
            prod(30) = 0._r8
            loss(17) = (rxt(181)* y(129) + het_rates(36))* y(36)
            prod(17) = 0._r8
            loss(135) = (rxt(271)* y(2) +rxt(269)* y(8) +rxt(212)* y(127) +rxt(236)                  * y(128) +rxt(270)* y(129) &
            +rxt(272)* y(130) + rxt(17) + rxt(18)                   + het_rates(16))* y(16)
            prod(135) = (rxt(218)*y(24) +rxt(273)*y(6) +2.000_r8*rxt(275)*y(13) +                  rxt(276)*y(13) +.700_r8*rxt(&
            297)*y(132) +rxt(305)*y(133) +                  rxt(318)*y(136) +.800_r8*rxt(327)*y(138) +.880_r8*rxt(347)*y(142) +   &
                           2.000_r8*rxt(353)*y(141) +1.200_r8*rxt(366)*y(144) +                  .700_r8*rxt(381)*y(145))*y(13) + &
            (.500_r8*rxt(289)*y(134) +                  rxt(321)*y(137) +rxt(325)*y(138) +.500_r8*rxt(334)*y(139) +               &
               .250_r8*rxt(343)*y(142) +rxt(350)*y(141) +.510_r8*rxt(362)*y(144) +                  .072_r8*rxt(368)*y(69) &
            +.100_r8*rxt(375)*y(143))*y(6)                   + (rxt(277)*y(15) +.300_r8*rxt(278)*y(14) +.500_r8*rxt(307)*y(45) +  &
                            .800_r8*rxt(308)*y(43) +rxt(312)*y(47) +.500_r8*rxt(358)*y(63))                  *y(129) + (rxt(293)&
            *y(37) +.540_r8*rxt(314)*y(48) +                  .800_r8*rxt(336)*y(60) +.700_r8*rxt(342)*y(61) +                  &
            .600_r8*rxt(360)*y(65))*y(1) + (.250_r8*rxt(345)*y(142) +                  rxt(351)*y(141) +.600_r8*rxt(363)*y(144) &
            +.072_r8*rxt(369)*y(69))                  *y(8) + (.250_r8*rxt(348)*y(142) +rxt(354)*y(141) +                  &
            .600_r8*rxt(367)*y(144))*y(133) + (rxt(157)*y(157) +rxt(158)*y(157))                  *y(12) +rxt(16)*y(14) +rxt(79)&
            *y(43) +rxt(62)*y(52) +rxt(78)*y(53)                   +rxt(72)*y(55) +1.340_r8*rxt(66)*y(61) +.100_r8*rxt(83)*y(66)  &
                             +.008_r8*rxt(370)*y(130)*y(69) +rxt(76)*y(70) +.690_r8*rxt(77)*y(72)                   +rxt(280)*y(&
            131) +2.000_r8*rxt(292)*y(135) +2.000_r8*rxt(355)*y(141)                  *y(141)
            loss(127) = (rxt(164)* y(1) +rxt(163)* y(3) + (rxt(165) +rxt(166) +rxt(167))                  * y(130) + het_rates(19)&
            )* y(19)
            prod(127) = (rxt(168)*y(2) +rxt(173)*y(18) +rxt(184)*y(5) +rxt(267)*y(17) +                  rxt(270)*y(16) +rxt(402)&
            *y(106) +rxt(403)*y(107) +rxt(406)*y(108))                  *y(129) + (rxt(159)*y(157) +rxt(175)*y(2) +rxt(208)*y(127)&
             +                  rxt(251)*y(103))*y(18) + (rxt(19) +2.000_r8*rxt(21))*y(158)                   +rxt(157)*y(157)*y(&
            12) +rxt(16)*y(14) +2.000_r8*rxt(17)*y(16)                   +rxt(28)*y(27) +rxt(34)*y(32) +rxt(57)*y(102)
            loss(125) = (rxt(177)* y(1) +rxt(176)* y(2) +rxt(191)* y(6) +rxt(204)* y(7)                   +rxt(203)* y(8) +rxt(&
            274)* y(13) +rxt(272)* y(16) + (rxt(165) +                  rxt(166) +rxt(167))* y(19) +rxt(217)* y(24) +rxt(239)* y(&
            31)                   +rxt(370)* y(69) + (rxt(210) +rxt(211))* y(127) +rxt(235)* y(128)                   +rxt(170)* &
            y(129) + 2._r8*rxt(178)* y(130) +rxt(282)* y(131)                   +rxt(296)* y(132) +rxt(304)* y(133) +rxt(290)* y(&
            134) +rxt(317)                  * y(136) +rxt(322)* y(137) +rxt(326)* y(138) +rxt(339)* y(140)                   +rxt(&
            352)* y(141) +rxt(346)* y(142) +rxt(376)* y(143) +rxt(364)                  * y(144) +rxt(380)* y(145) +rxt(387)* y(&
            146) +rxt(395)* y(147)                   + rxt(400) + het_rates(130))* y(130)
            prod(125) = (rxt(255)*y(79) +rxt(258)*y(80) +rxt(169)*y(1) +rxt(174)*y(20) +                  rxt(180)*y(35) +rxt(181)&
            *y(36) +rxt(202)*y(8) +rxt(215)*y(24) +                  rxt(238)*y(31) +rxt(268)*y(17) +rxt(277)*y(15) +rxt(279)*y(&
            99) +                  .350_r8*rxt(286)*y(98) +rxt(308)*y(43) +rxt(309)*y(44) +                  rxt(310)*y(42) +rxt(&
            329)*y(53) +.200_r8*rxt(349)*y(62) +                  .500_r8*rxt(358)*y(63) +rxt(372)*y(70) +.250_r8*rxt(385)*y(73) &
            +                  rxt(413)*y(104) +.500_r8*rxt(416)*y(105))*y(129) + (rxt(273)*y(13) +                  rxt(281)*y(&
            131) +.250_r8*rxt(289)*y(134) +rxt(295)*y(132) +                  rxt(316)*y(136) +rxt(321)*y(137) +rxt(334)*y(139) + &
                             .470_r8*rxt(343)*y(142) +rxt(362)*y(144) +.794_r8*rxt(368)*y(69) +                  .900_r8*rxt(375)&
            *y(143) +rxt(378)*y(145) +.900_r8*rxt(386)*y(146) +                  rxt(394)*y(147))*y(6) + (rxt(218)*y(24) &
            +2.000_r8*rxt(275)*y(13) +                  rxt(297)*y(132) +.900_r8*rxt(305)*y(133) +rxt(318)*y(136) +               &
               .300_r8*rxt(327)*y(138) +.730_r8*rxt(347)*y(142) +rxt(353)*y(141) +                  rxt(366)*y(144) +.800_r8*rxt(&
            381)*y(145))*y(13)                   + (.120_r8*rxt(293)*y(37) +.190_r8*rxt(314)*y(48) +                  .060_r8*rxt(&
            336)*y(60) +.275_r8*rxt(342)*y(61) +                  .060_r8*rxt(360)*y(65) +rxt(392)*y(77))*y(1) + (rxt(269)*y(16) &
            +                  .470_r8*rxt(345)*y(142) +rxt(363)*y(144) +.794_r8*rxt(369)*y(69) +                  rxt(373)*y(70) &
            +rxt(379)*y(145))*y(8) + (rxt(254)*y(79) +                  rxt(259)*y(80) +rxt(209)*y(20) +rxt(212)*y(16))*y(127)    &
                           + (.470_r8*rxt(348)*y(142) +rxt(367)*y(144) +rxt(382)*y(145))*y(133)                   + (rxt(179)*y(&
            20) +rxt(271)*y(16))*y(2) + (rxt(163)*y(19) +                  rxt(291)*y(135))*y(3) + (rxt(15) +rxt(206))*y(10)      &
                         + (1.340_r8*rxt(66) +.660_r8*rxt(67))*y(61) +.700_r8*rxt(390)*y(76)                  *y(7) +rxt(157)*y(&
            157)*y(12) +rxt(236)*y(128)*y(16) +rxt(69)*y(39)                   +rxt(61)*y(41) +2.000_r8*rxt(79)*y(43) &
            +2.000_r8*rxt(82)*y(44)                   +rxt(71)*y(50) +rxt(62)*y(52) +rxt(78)*y(53) +rxt(74)*y(54)                 &
              +.900_r8*rxt(83)*y(66) +.560_r8*rxt(81)*y(67)                   +.794_r8*rxt(370)*y(130)*y(69) +rxt(76)*y(70) +rxt(&
            77)*y(72)                   +rxt(86)*y(78) +rxt(280)*y(131) +1.200_r8*rxt(298)*y(132)*y(132)                   +rxt(&
            292)*y(135)
            loss(74) = (rxt(179)* y(2) +rxt(209)* y(127) +rxt(174)* y(129) + rxt(22)                   + het_rates(20))* y(20)
            prod(74) = (.500_r8*rxt(400) +rxt(178)*y(130))*y(130) +rxt(172)*y(129)*y(129)
            loss(134) = (rxt(250)* y(103) +rxt(414)* y(109) +rxt(134)* y(157) + rxt(19)                   + rxt(20) + rxt(21) + &
            het_rates(158))* y(158)
            prod(134) = (rxt(255)*y(79) +rxt(256)*y(86) +rxt(257)*y(84) +rxt(258)*y(80) +                  rxt(262)*y(96) +rxt(&
            266)*y(12) +rxt(170)*y(130) +rxt(171)*y(129) +                  rxt(173)*y(18) +rxt(174)*y(20) +rxt(199)*y(9) +rxt(&
            205)*y(10) +                  rxt(226)*y(27) +rxt(230)*y(28) +rxt(246)*y(32) +rxt(270)*y(16) +                  rxt(&
            278)*y(14) +rxt(279)*y(99) +rxt(287)*y(38) +rxt(294)*y(40) +                  rxt(300)*y(41) +rxt(307)*y(45) +rxt(319)&
            *y(50) +rxt(320)*y(49) +                  rxt(323)*y(52) +rxt(324)*y(51) +rxt(328)*y(55) +rxt(330)*y(54) +            &
                  .500_r8*rxt(341)*y(61) +rxt(383)*y(71) +rxt(384)*y(71))*y(129)                   + (rxt(422)*y(28) +rxt(423)*y(&
            33) +rxt(427)*y(28) +rxt(433)*y(28) +                  rxt(434)*y(33))*y(27) +rxt(167)*y(130)*y(19) +rxt(87)*y(110)
            loss(126) = (rxt(207)* y(1) +rxt(213)* y(12) +rxt(212)* y(16) +rxt(208)                  * y(18) +rxt(209)* y(20) &
            +rxt(229)* y(28) +rxt(233)* y(29) +rxt(285)                  * y(38) +rxt(254)* y(79) +rxt(259)* y(80) +rxt(265)* y(&
            95) +rxt(264)                  * y(96) + (rxt(210) +rxt(211))* y(130) + het_rates(127))* y(127)
            prod(126) = (2.000_r8*rxt(138)*y(81) +2.000_r8*rxt(139)*y(82) +                  2.000_r8*rxt(140)*y(83) &
            +2.000_r8*rxt(141)*y(91) +rxt(142)*y(92) +                  rxt(143)*y(84) +rxt(144)*y(89) +rxt(145)*y(90) +          &
                    4.000_r8*rxt(146)*y(85) +rxt(148)*y(88) +rxt(155)*y(101) +                  rxt(160)*y(27))*y(157) + (rxt(24) &
            +rxt(214)*y(2) +rxt(215)*y(129) +                  rxt(218)*y(13) +rxt(219)*y(6) +2.000_r8*rxt(221)*y(24) +           &
                   rxt(223)*y(24) +rxt(243)*y(31) +rxt(410)*y(108))*y(24)                   + (rxt(255)*y(79) +3.000_r8*rxt(256)&
            *y(86) +rxt(257)*y(84) +                  rxt(260)*y(89) +rxt(261)*y(90) +rxt(226)*y(27))*y(129) + (rxt(28) +         &
                     rxt(227)*y(2))*y(27) +2.000_r8*rxt(23)*y(23) +2.000_r8*rxt(26)*y(26)                   +rxt(27)*y(28) +rxt(&
            29)*y(29) +rxt(31)*y(30) +rxt(56)*y(101)
            loss(29) = (+ rxt(23) + het_rates(23))* y(23)
            prod(29) = (rxt(421)*y(29) +rxt(422)*y(28) +rxt(426)*y(29) +rxt(427)*y(28) +                  rxt(432)*y(29) +rxt(433)&
            *y(28))*y(27) +rxt(222)*y(24)*y(24)                   +rxt(233)*y(127)*y(29)
            loss(124) = (rxt(214)* y(2) +rxt(219)* y(6) +rxt(220)* y(7) +rxt(218)* y(13)                   + 2._r8*(rxt(221) +rxt(&
            222) +rxt(223) +rxt(224))* y(24)                   + (rxt(242) +rxt(243) +rxt(244))* y(31) +rxt(410)* y(108)          &
                     + (rxt(215) +rxt(216))* y(129) +rxt(217)* y(130) + rxt(24)                   + het_rates(24))* y(24)
            prod(124) = (rxt(228)*y(2) +rxt(229)*y(127) +rxt(230)*y(129))*y(28)                   + (rxt(25) +rxt(412)*y(108))*y(&
            25) + (rxt(30) +rxt(231)*y(2))*y(29)                   + (rxt(207)*y(1) +rxt(211)*y(130))*y(127) +2.000_r8*rxt(225)*y(&
            26)
            loss(46) = (rxt(412)* y(108) + rxt(25) + het_rates(25))* y(25)
            prod(46) = (rxt(223)*y(24) +rxt(242)*y(31))*y(24)
            loss(18) = (+ rxt(26) + rxt(225) + het_rates(26))* y(26)
            prod(18) = rxt(224)*y(24)*y(24)
            loss(117) = (rxt(227)* y(2) + (rxt(422) +rxt(427) +rxt(433))* y(28)                   + (rxt(421) +rxt(426) +rxt(432))&
            * y(29) + (rxt(423) +rxt(434))                  * y(33) +rxt(226)* y(129) +rxt(160)* y(157) + rxt(28)                 &
              + het_rates(27))* y(27)
            prod(117) = (rxt(213)*y(12) +2.000_r8*rxt(254)*y(79) +rxt(259)*y(80) +                  rxt(264)*y(96) +rxt(265)*y(95)&
             +rxt(208)*y(18) +rxt(209)*y(20) +                  rxt(210)*y(130) +rxt(212)*y(16) +rxt(229)*y(28) +rxt(285)*y(38))  &
                            *y(127) +rxt(216)*y(129)*y(24)
            loss(93) = (rxt(228)* y(2) + (rxt(422) +rxt(427) +rxt(433))* y(27) +rxt(229)                  * y(127) +rxt(230)* y(&
            129) + rxt(27) + het_rates(28))* y(28)
            prod(93) = (rxt(419) +rxt(425) +rxt(430) +rxt(232)*y(129))*y(29)                   +rxt(217)*y(130)*y(24)
            loss(100) = (rxt(231)* y(2) + (rxt(421) +rxt(426) +rxt(432))* y(27) +rxt(233)                  * y(127) +rxt(232)* y(&
            129) + rxt(29) + rxt(30) + rxt(419) + rxt(425)                   + rxt(430) + het_rates(29))* y(29)
            prod(100) = rxt(220)*y(24)*y(7)
            loss(33) = (+ rxt(31) + het_rates(30))* y(30)
            prod(33) = (rxt(423)*y(33) +rxt(434)*y(33))*y(27) +rxt(244)*y(31)*y(24)
            loss(118) = (rxt(234)* y(1) +rxt(236)* y(16) +rxt(235)* y(130)                   + het_rates(128))* y(128)
            prod(118) = (rxt(32) +rxt(237)*y(2) +rxt(238)*y(129) +rxt(240)*y(6) +                  rxt(242)*y(24) +rxt(243)*y(24) &
            +2.000_r8*rxt(245)*y(31) +                  rxt(411)*y(108))*y(31) + (rxt(147)*y(80) +rxt(148)*y(88) +                &
              rxt(149)*y(87) +2.000_r8*rxt(150)*y(93) +2.000_r8*rxt(151)*y(94) +                  3.000_r8*rxt(152)*y(95) &
            +2.000_r8*rxt(153)*y(96) +rxt(161)*y(32))                  *y(157) + (rxt(258)*y(80) +2.000_r8*rxt(262)*y(96) +       &
                       3.000_r8*rxt(263)*y(95) +rxt(246)*y(32))*y(129) + (rxt(259)*y(80) +                  2.000_r8*rxt(264)*y(&
            96) +3.000_r8*rxt(265)*y(95))*y(127) + (rxt(34) +                  rxt(247)*y(2))*y(32) +rxt(31)*y(30) +rxt(33)*y(33) &
            +rxt(35)*y(34)
            loss(128) = (rxt(237)* y(2) +rxt(240)* y(6) +rxt(241)* y(7) + (rxt(242) +                  rxt(243) +rxt(244))* y(24) &
            + 2._r8*rxt(245)* y(31) +rxt(411)* y(108)                   +rxt(238)* y(129) +rxt(239)* y(130) + rxt(32) + het_rates(&
            31))                  * y(31)
            prod(128) = (rxt(248)*y(33) +rxt(249)*y(34))*y(2) +rxt(234)*y(128)*y(1)                   +rxt(36)*y(34)
            loss(90) = (rxt(247)* y(2) +rxt(246)* y(129) +rxt(161)* y(157) + rxt(34)                   + het_rates(32))* y(32)
            prod(90) = (rxt(235)*y(130) +rxt(236)*y(16))*y(128)
            loss(84) = (rxt(248)* y(2) + (rxt(423) +rxt(434))* y(27) + rxt(33)                   + het_rates(33))* y(33)
            prod(84) = (rxt(420) +rxt(428) +rxt(431))*y(34) +rxt(239)*y(130)*y(31)
            loss(70) = (rxt(249)* y(2) + rxt(35) + rxt(36) + rxt(420) + rxt(428)                   + rxt(431) + het_rates(34))* y(&
            34)
            prod(70) = rxt(241)*y(31)*y(7)
            loss(78) = ((rxt(437) +rxt(438))* y(2) +rxt(445)* y(3) +rxt(449)* y(153)                   + het_rates(148))* y(148)
            prod(78) = 0._r8
            loss(85) = (rxt(440)* y(5) +rxt(441)* y(6) +rxt(448)* y(153) + rxt(446)                   + het_rates(149))* y(149)
            prod(85) = (rxt(96) +rxt(108) +rxt(435)*y(151) +rxt(442)*y(150) +                  rxt(445)*y(148))*y(3) +rxt(439)*y(&
            151)*y(97)
            loss(58) = (rxt(444)* y(2) + (rxt(442) +rxt(443))* y(3) + het_rates(150))                  * y(150)
            prod(58) = rxt(95)*y(5)
            loss(72) = (rxt(435)* y(3) +rxt(439)* y(97) + rxt(436) + het_rates(151))                  * y(151)
            prod(72) = (rxt(92) +rxt(93) +rxt(94) +rxt(105) +rxt(106) +rxt(107) +                  rxt(438)*y(148) +rxt(444)*y(&
            150))*y(2) + (rxt(98) +rxt(99) +                  rxt(100) +rxt(110) +rxt(111) +rxt(112))*y(3)
            loss(86) = (rxt(447)* y(153) + het_rates(152))* y(152)
            prod(86) = (rxt(446) +rxt(440)*y(5) +rxt(441)*y(6))*y(149) +rxt(437)*y(148)                  *y(2) +rxt(443)*y(150)*y(&
            3) +rxt(7)*y(6) +rxt(436)*y(151)
            loss(61) = (rxt(183)* y(2) +rxt(182)* y(3) + het_rates(154))* y(154)
            prod(61) = (rxt(437)*y(2) +.900_r8*rxt(449)*y(153))*y(148)                   +.800_r8*rxt(447)*y(153)*y(152)
            loss(87) = (rxt(449)* y(148) +rxt(448)* y(149) +rxt(447)* y(152)                   + het_rates(153))* y(153)
            prod(87) = (rxt(96) +rxt(98) +rxt(99) +rxt(100) +rxt(108) +rxt(110) +                  rxt(111) +rxt(112))*y(3) + (&
            rxt(92) +rxt(93) +rxt(94) +rxt(105) +                  rxt(106) +rxt(107))*y(2) +rxt(95)*y(5) +rxt(7)*y(6)
            loss(102) = (rxt(314)* y(1) +rxt(315)* y(8) +rxt(313)* y(129)                   + het_rates(48))* y(48)
            prod(102) = .070_r8*rxt(360)*y(65)*y(1) +.700_r8*rxt(68)*y(60)
            loss(94) = (rxt(360)* y(1) +rxt(361)* y(8) +rxt(359)* y(129) + het_rates(65))                  * y(65)
            prod(94) = 0._r8
            loss(89) = (rxt(321)* y(6) +rxt(322)* y(130) + het_rates(137))* y(137)
            prod(89) = (rxt(313)*y(48) +.500_r8*rxt(323)*y(52))*y(129)
            loss(104) = (rxt(301)* y(8) +rxt(300)* y(129) + rxt(61) + het_rates(41))                  * y(41)
            prod(104) = (rxt(295)*y(132) +.270_r8*rxt(316)*y(136) +rxt(321)*y(137) +                  rxt(334)*y(139) +rxt(338)*y(&
            140) +.400_r8*rxt(375)*y(143))*y(6)                   + (.500_r8*rxt(314)*y(48) +.040_r8*rxt(336)*y(60))*y(1) + (rxt(&
            69) +                  .500_r8*rxt(299)*y(129))*y(39) + (.800_r8*rxt(297)*y(13) +                  1.600_r8*rxt(298)&
            *y(132))*y(132) +rxt(310)*y(129)*y(42) +rxt(62)                  *y(52) +rxt(84)*y(59) +.400_r8*rxt(83)*y(66)
            loss(75) = (rxt(294)* y(129) + het_rates(40))* y(40)
            prod(75) = (.250_r8*rxt(314)*y(48) +.200_r8*rxt(360)*y(65))*y(1)                   + (.250_r8*rxt(304)*y(133) &
            +.250_r8*rxt(352)*y(141))*y(130)                   +.100_r8*rxt(305)*y(133)*y(13)
            loss(67) = (rxt(323)* y(129) + rxt(62) + het_rates(52))* y(52)
            prod(67) = rxt(322)*y(137)*y(130)
            loss(115) = (rxt(302)* y(6) +rxt(303)* y(7) +rxt(305)* y(13) +rxt(304)                  * y(130) + 2._r8*rxt(306)* y(&
            133) +rxt(348)* y(142) +rxt(367)* y(144)                   +rxt(382)* y(145) + het_rates(133))* y(133)
            prod(115) = (rxt(325)*y(138) +rxt(338)*y(140) +.530_r8*rxt(343)*y(142) +                  rxt(350)*y(141))*y(6) + (&
            rxt(301)*y(41) +rxt(331)*y(54) +                  .530_r8*rxt(345)*y(142) +rxt(351)*y(141))*y(8)                   + (&
            .300_r8*rxt(327)*y(138) +.260_r8*rxt(347)*y(142) +                  rxt(353)*y(141))*y(13) + (rxt(300)*y(41) &
            +.500_r8*rxt(307)*y(45) +                  rxt(330)*y(54))*y(129) + (.600_r8*rxt(64) +rxt(311))*y(47) +rxt(73)        &
                      *y(51) +rxt(78)*y(53) +rxt(74)*y(54) +rxt(72)*y(55) +rxt(80)*y(58)                   +rxt(84)*y(59) &
            +.300_r8*rxt(68)*y(60) +1.340_r8*rxt(66)*y(61)                   +.130_r8*rxt(81)*y(67) +.530_r8*rxt(348)*y(142)*y(&
            133)                   +2.000_r8*rxt(355)*y(141)*y(141)
            loss(62) = (rxt(307)* y(129) + rxt(63) + het_rates(45))* y(45)
            prod(62) = (.750_r8*rxt(304)*y(133) +.750_r8*rxt(352)*y(141))*y(130)
            loss(57) = (rxt(312)* y(129) + rxt(64) + rxt(311) + het_rates(47))* y(47)
            prod(57) = rxt(303)*y(133)*y(7)
            loss(49) = (rxt(332)* y(129) + het_rates(64))* y(64)
            prod(49) = .100_r8*rxt(375)*y(143)*y(6) +rxt(315)*y(48)*y(8)
            loss(37) = (rxt(285)* y(127) +rxt(287)* y(129) + het_rates(38))* y(38)
            prod(37) = 0._r8
            loss(63) = (rxt(293)* y(1) +rxt(284)* y(127) +rxt(288)* y(129)                   + het_rates(37))* y(37)
            prod(63) = 0._r8
            loss(19) = (rxt(371)* y(129) + het_rates(57))* y(57)
            prod(19) = 0._r8
            loss(71) = (rxt(358)* y(129) + rxt(65) + rxt(357) + het_rates(63))* y(63)
            prod(71) = rxt(356)*y(141)*y(7)
            loss(20) = (rxt(333)* y(129) + het_rates(56))* y(56)
            prod(20) = 0._r8
            loss(41) = (rxt(334)* y(6) + het_rates(139))* y(139)
            prod(41) = rxt(333)*y(129)*y(56)
            loss(79) = (rxt(375)* y(6) +rxt(376)* y(130) + het_rates(143))* y(143)
            prod(79) = (rxt(371)*y(57) +rxt(377)*y(66))*y(129)
            loss(76) = (rxt(377)* y(129) + rxt(83) + het_rates(66))* y(66)
            prod(76) = rxt(376)*y(143)*y(130)
            loss(55) = (rxt(337)* y(129) + rxt(80) + het_rates(58))* y(58)
            prod(55) = .800_r8*rxt(375)*y(143)*y(6) +.800_r8*rxt(83)*y(66)
            loss(77) = (rxt(338)* y(6) +rxt(339)* y(130) + het_rates(140))* y(140)
            prod(77) = (rxt(337)*y(58) +rxt(340)*y(59))*y(129)
            loss(42) = (rxt(340)* y(129) + rxt(84) + het_rates(59))* y(59)
            prod(42) = rxt(339)*y(140)*y(130)
            loss(22) = (rxt(385)* y(129) + het_rates(73))* y(73)
            prod(22) = 0._r8
            loss(23) = (rxt(389)* y(129) + het_rates(74))* y(74)
            prod(23) = .250_r8*rxt(385)*y(129)*y(73)
            loss(65) = (rxt(386)* y(6) +rxt(387)* y(130) + het_rates(146))* y(146)
            prod(65) = (.700_r8*rxt(385)*y(73) +rxt(388)*y(75))*y(129)
            loss(51) = (rxt(388)* y(129) + rxt(85) + het_rates(75))* y(75)
            prod(51) = rxt(387)*y(146)*y(130)
            loss(31) = (rxt(390)* y(7) + het_rates(76))* y(76)
            prod(31) = rxt(389)*y(129)*y(74)
            loss(98) = (rxt(394)* y(6) +rxt(395)* y(130) + het_rates(147))* y(147)
            prod(98) = (rxt(391)*y(129) +rxt(393)*y(8))*y(77) +rxt(396)*y(129)*y(78)
            loss(59) = (rxt(396)* y(129) + rxt(86) + het_rates(78))* y(78)
            prod(59) = rxt(395)*y(147)*y(130)
            loss(66) = (+ rxt(81) + het_rates(67))* y(67)
            prod(66) = .900_r8*rxt(386)*y(146)*y(6) +.700_r8*rxt(390)*y(76)*y(7)                   +.900_r8*rxt(85)*y(75)
            loss(81) = (rxt(309)* y(129) + rxt(82) + het_rates(44))* y(44)
            prod(81) = (.250_r8*rxt(378)*y(6) +.250_r8*rxt(379)*y(8) +                  .100_r8*rxt(381)*y(13) +.250_r8*rxt(382)&
            *y(133))*y(145)                   + (.650_r8*rxt(286)*y(98) +.200_r8*rxt(308)*y(43))*y(129)                   &
            +.450_r8*rxt(386)*y(146)*y(6) +.130_r8*rxt(81)*y(67)                   +.450_r8*rxt(85)*y(75)
            loss(111) = (rxt(362)* y(6) +rxt(363)* y(8) +rxt(366)* y(13) +rxt(364)                  * y(130) +rxt(367)* y(133) + &
            het_rates(144))* y(144)
            prod(111) = (rxt(359)*y(65) +.200_r8*rxt(365)*y(72))*y(129)
            loss(113) = (rxt(336)* y(1) +rxt(335)* y(129) + rxt(68) + het_rates(60))                  * y(60)
            prod(113) = (.320_r8*rxt(362)*y(6) +.350_r8*rxt(363)*y(8) +                  .260_r8*rxt(366)*y(13) +.350_r8*rxt(367)&
            *y(133))*y(144)                   + (.039_r8*rxt(368)*y(6) +.039_r8*rxt(369)*y(8) +                  .039_r8*rxt(370)&
            *y(130))*y(69) + (.200_r8*rxt(360)*y(65) +                  rxt(392)*y(77))*y(1) +rxt(394)*y(147)*y(6) +.402_r8*rxt(&
            77)*y(72)                   +rxt(86)*y(78)
            loss(107) = (rxt(342)* y(1) +rxt(341)* y(129) + rxt(66) + rxt(67)                   + het_rates(61))* y(61)
            prod(107) = (.230_r8*rxt(362)*y(6) +.250_r8*rxt(363)*y(8) +                  .190_r8*rxt(366)*y(13) +.250_r8*rxt(367)&
            *y(133))*y(144)                   + (.167_r8*rxt(368)*y(6) +.167_r8*rxt(369)*y(8) +                  .167_r8*rxt(370)&
            *y(130))*y(69) + (.400_r8*rxt(360)*y(65) +                  rxt(392)*y(77))*y(1) +rxt(394)*y(147)*y(6) +.288_r8*rxt(&
            77)*y(72)                   +rxt(86)*y(78)
            loss(112) = ((rxt(343) +rxt(344))* y(6) +rxt(345)* y(8) +rxt(347)* y(13)                   +rxt(346)* y(130) +rxt(348)&
            * y(133) + het_rates(142))* y(142)
            prod(112) = (rxt(335)*y(60) +.500_r8*rxt(341)*y(61) +.200_r8*rxt(349)*y(62))                  *y(129)
            loss(43) = (rxt(349)* y(129) + het_rates(62))* y(62)
            prod(43) = rxt(346)*y(142)*y(130)
            loss(114) = (rxt(350)* y(6) +rxt(356)* y(7) +rxt(351)* y(8) +rxt(353)* y(13)                   +rxt(352)* y(130) +rxt(&
            354)* y(133) + 2._r8*rxt(355)* y(141)                   + het_rates(141))* y(141)
            prod(114) = (.660_r8*rxt(66) +.500_r8*rxt(341)*y(129))*y(61) + (rxt(65) +                  rxt(357))*y(63) &
            +.200_r8*rxt(360)*y(65)*y(1) +.500_r8*rxt(349)*y(129)                  *y(62)
            loss(91) = (rxt(295)* y(6) +rxt(297)* y(13) +rxt(296)* y(130)                   + 2._r8*rxt(298)* y(132) + het_rates(&
            132))* y(132)
            prod(91) = (rxt(285)*y(127) +rxt(287)*y(129))*y(38) +.500_r8*rxt(299)*y(129)                  *y(39) +rxt(80)*y(58)
            loss(44) = (rxt(299)* y(129) + rxt(69) + het_rates(39))* y(39)
            prod(44) = rxt(296)*y(132)*y(130)
            loss(73) = (rxt(392)* y(1) +rxt(393)* y(8) +rxt(391)* y(129) + het_rates(77))                  * y(77)
            prod(73) = 0._r8
            loss(21) = (rxt(320)* y(129) + het_rates(49))* y(49)
            prod(21) = 0._r8
            loss(96) = (rxt(316)* y(6) +rxt(318)* y(13) +rxt(317)* y(130)                   + het_rates(136))* y(136)
            prod(96) = (rxt(319)*y(50) +rxt(320)*y(49))*y(129)
            loss(52) = (rxt(319)* y(129) + rxt(71) + het_rates(50))* y(50)
            prod(52) = rxt(317)*y(136)*y(130)
            loss(80) = (rxt(324)* y(129) + rxt(73) + het_rates(51))* y(51)
            prod(80) = (.820_r8*rxt(316)*y(136) +.500_r8*rxt(334)*y(139) +                  .250_r8*rxt(375)*y(143) +.100_r8*rxt(&
            394)*y(147))*y(6)                   +.820_r8*rxt(318)*y(136)*y(13) +.820_r8*rxt(71)*y(50)                   &
            +.250_r8*rxt(83)*y(66) +.100_r8*rxt(86)*y(78)
            loss(53) = (rxt(328)* y(129) + rxt(72) + het_rates(55))* y(55)
            prod(53) = rxt(326)*y(138)*y(130)
            loss(68) = (rxt(277)* y(129) + het_rates(15))* y(15)
            prod(68) = (rxt(276)*y(13) +.300_r8*rxt(297)*y(132) +                  .500_r8*rxt(327)*y(138) +.250_r8*rxt(347)*y(&
            142) +                  .250_r8*rxt(366)*y(144) +.300_r8*rxt(381)*y(145))*y(13)
            loss(35) = (rxt(310)* y(129) + het_rates(42))* y(42)
            prod(35) = (.200_r8*rxt(297)*y(13) +.400_r8*rxt(298)*y(132))*y(132)
            loss(95) = (rxt(308)* y(129) + rxt(79) + het_rates(43))* y(43)
            prod(95) = (.530_r8*rxt(343)*y(6) +.530_r8*rxt(345)*y(8) +                  .260_r8*rxt(347)*y(13) +.530_r8*rxt(348)&
            *y(133))*y(142)                   + (.250_r8*rxt(378)*y(6) +.250_r8*rxt(379)*y(8) +                  .100_r8*rxt(381)&
            *y(13) +.250_r8*rxt(382)*y(133))*y(145)                   +rxt(291)*y(135)*y(3)
            loss(105) = (rxt(329)* y(129) + rxt(78) + het_rates(53))* y(53)
            prod(105) = (.220_r8*rxt(343)*y(6) +.220_r8*rxt(345)*y(8) +                  .230_r8*rxt(347)*y(13) +.220_r8*rxt(348)&
            *y(133))*y(142)                   + (.250_r8*rxt(378)*y(6) +.250_r8*rxt(379)*y(8) +                  .100_r8*rxt(381)&
            *y(13) +.250_r8*rxt(382)*y(133))*y(145)                   + (.500_r8*rxt(323)*y(52) +.500_r8*rxt(358)*y(63))*y(129)   &
                            +.200_r8*rxt(327)*y(138)*y(13)
            loss(83) = (rxt(289)* y(6) +rxt(290)* y(130) + het_rates(134))* y(134)
            prod(83) = rxt(288)*y(129)*y(37)
            loss(56) = (rxt(291)* y(3) + rxt(292) + het_rates(135))* y(135)
            prod(56) = .750_r8*rxt(289)*y(134)*y(6) +rxt(70)*y(46)
            loss(24) = (+ rxt(70) + het_rates(46))* y(46)
            prod(24) = rxt(290)*y(134)*y(130)
            loss(47) = (rxt(374)* y(129) + het_rates(68))* y(68)
            prod(47) = (.370_r8*rxt(362)*y(6) +.400_r8*rxt(363)*y(8) +                  .300_r8*rxt(366)*y(13) +.400_r8*rxt(367)&
            *y(133))*y(144)                   + (rxt(372)*y(129) +rxt(373)*y(8))*y(70)
            loss(106) = (rxt(325)* y(6) +rxt(327)* y(13) +rxt(326)* y(130)                   + het_rates(138))* y(138)
            prod(106) = (rxt(324)*y(51) +rxt(328)*y(55))*y(129)
            loss(109) = (rxt(331)* y(8) +rxt(330)* y(129) + rxt(74) + het_rates(54))                  * y(54)
            prod(109) = (.250_r8*rxt(343)*y(6) +.250_r8*rxt(345)*y(8) +                  .240_r8*rxt(347)*y(13) +.250_r8*rxt(348)&
            *y(133))*y(142)                   + (.250_r8*rxt(378)*y(6) +.250_r8*rxt(379)*y(8) +                  .100_r8*rxt(381)&
            *y(13) +.250_r8*rxt(382)*y(133))*y(145)                   + (.950_r8*rxt(336)*y(60) +.800_r8*rxt(342)*y(61))*y(1)     &
                          + (rxt(329)*y(53) +rxt(332)*y(64))*y(129) +.450_r8*rxt(386)*y(146)                  *y(6) +.500_r8*rxt(&
            327)*y(138)*y(13) +.180_r8*rxt(81)*y(67)                   +.450_r8*rxt(85)*y(75)
            loss(101) = (rxt(368)* y(6) +rxt(369)* y(8) +rxt(370)* y(130)                   + het_rates(69))* y(69)
            prod(101) = rxt(361)*y(65)*y(8)
            loss(97) = (rxt(373)* y(8) +rxt(372)* y(129) + rxt(76) + het_rates(70))                  * y(70)
            prod(97) = (.800_r8*rxt(344)*y(142) +.080_r8*rxt(362)*y(144) +                  .794_r8*rxt(368)*y(69))*y(6) + (&
            .794_r8*rxt(369)*y(8) +                  .794_r8*rxt(370)*y(130))*y(69)
            loss(110) = (rxt(378)* y(6) +rxt(379)* y(8) +rxt(381)* y(13) +rxt(380)                  * y(130) +rxt(382)* y(133) + &
            het_rates(145))* y(145)
            prod(110) = (.800_r8*rxt(365)*y(72) +rxt(374)*y(68) +rxt(383)*y(71))*y(129)
            loss(45) = ((rxt(383) +rxt(384))* y(129) + rxt(75) + het_rates(71))* y(71)
            prod(45) = (rxt(370)*y(69) +rxt(380)*y(145))*y(130)
            loss(69) = (rxt(365)* y(129) + rxt(77) + het_rates(72))* y(72)
            prod(69) = rxt(364)*y(144)*y(130)
            loss(38) = (rxt(283)* y(127) +rxt(286)* y(129) + het_rates(98))* y(98)
            prod(38) = 0._r8
            loss(64) = (rxt(279)* y(129) + het_rates(99))* y(99)
            prod(64) = (rxt(281)*y(6) +rxt(282)*y(130))*y(131) +.500_r8*rxt(293)*y(37)                  *y(1) +.350_r8*rxt(286)*y(&
            129)*y(98)
            loss(54) = (rxt(281)* y(6) +rxt(282)* y(130) + rxt(280) + het_rates(131))                  * y(131)
            prod(54) = rxt(272)*y(130)*y(16)
            loss(25) = (rxt(154)* y(157) + rxt(55) + het_rates(100))* y(100)
            prod(25) = (rxt(139)*y(82) +rxt(140)*y(83) +2.000_r8*rxt(141)*y(91) +                  2.000_r8*rxt(142)*y(92) +rxt(&
            143)*y(84) +rxt(145)*y(90) +                  rxt(148)*y(88) +rxt(149)*y(87) +rxt(150)*y(93) +                  &
            2.000_r8*rxt(151)*y(94))*y(157) + (rxt(257)*y(84) +rxt(261)*y(90))                  *y(129)
            loss(32) = (rxt(155)* y(157) + rxt(56) + het_rates(101))* y(101)
            prod(32) = (rxt(138)*y(81) +rxt(140)*y(83) +rxt(144)*y(89))*y(157)                   +rxt(260)*y(129)*y(89)
            loss(34) = (+ rxt(57) + het_rates(102))* y(102)
            prod(34) = (rxt(252)*y(12) +rxt(250)*y(158) +rxt(251)*y(18) +rxt(253)*y(9))                  *y(103)
            loss(88) = (rxt(253)* y(9) +rxt(252)* y(12) +rxt(251)* y(18) +rxt(250)                  * y(158) + het_rates(103))* y(&
            103)
            prod(88) = (rxt(142)*y(92) +rxt(149)*y(87) +2.000_r8*rxt(154)*y(100) +                  rxt(155)*y(101))*y(157) &
            +2.000_r8*rxt(55)*y(100) +rxt(56)*y(101)                   +rxt(57)*y(102)
            loss(99) = (rxt(413)* y(129) + rxt(88) + het_rates(104))* y(104)
            prod(99) = (rxt(406)*y(129) +rxt(407)*y(3) +rxt(408)*y(1) +rxt(409)*y(7) +                  rxt(410)*y(24) +rxt(411)&
            *y(31) +rxt(412)*y(25))*y(108)                   + (rxt(415)*y(129) +.500_r8*rxt(416)*y(129) +rxt(417)*y(8))*y(105)   &
                            +rxt(402)*y(129)*y(106) +rxt(89)*y(109)
            loss(39) = (rxt(417)* y(8) + (rxt(415) +rxt(416))* y(129) + het_rates(105))                  * y(105)
            prod(39) = 0._r8
            loss(48) = (rxt(401)* y(2) +rxt(402)* y(129) + rxt(90) + het_rates(106))                  * y(106)
            prod(48) = 0._r8
            loss(82) = (rxt(405)* y(1) +rxt(404)* y(3) +rxt(403)* y(129)                   + het_rates(107))* y(107)
            prod(82) = rxt(90)*y(106) +rxt(91)*y(108)
            loss(116) = (rxt(408)* y(1) +rxt(407)* y(3) +rxt(409)* y(7) +rxt(410)* y(24)                   +rxt(412)* y(25) +rxt(&
            411)* y(31) +rxt(406)* y(129) + rxt(91)                   + het_rates(108))* y(108)
            prod(116) = (rxt(403)*y(129) +rxt(404)*y(3) +rxt(405)*y(1))*y(107)                   +rxt(401)*y(106)*y(2) +rxt(88)*y(&
            104)
            loss(36) = (rxt(414)* y(158) + rxt(89) + het_rates(109))* y(109)
            prod(36) = rxt(413)*y(129)*y(104) +rxt(87)*y(110)
            loss(26) = (+ rxt(87) + het_rates(110))* y(110)
            prod(26) = rxt(414)*y(158)*y(109)
            loss(1) = (+ het_rates(111))* y(111)
            prod(1) = 0._r8
            loss(2) = (+ het_rates(112))* y(112)
            prod(2) = 0._r8
            loss(3) = (+ het_rates(113))* y(113)
            prod(3) = 0._r8
            loss(4) = (+ het_rates(114))* y(114)
            prod(4) = 0._r8
            loss(5) = (+ het_rates(115))* y(115)
            prod(5) = 0._r8
            loss(6) = (+ het_rates(116))* y(116)
            prod(6) = 0._r8
            loss(7) = (+ het_rates(117))* y(117)
            prod(7) = 0._r8
            loss(8) = (+ het_rates(118))* y(118)
            prod(8) = 0._r8
            loss(9) = (+ het_rates(119))* y(119)
            prod(9) = 0._r8
            loss(10) = (+ het_rates(120))* y(120)
            prod(10) = 0._r8
            loss(11) = (+ het_rates(121))* y(121)
            prod(11) = 0._r8
            loss(12) = (+ het_rates(122))* y(122)
            prod(12) = 0._r8
            loss(13) = (+ het_rates(123))* y(123)
            prod(13) = 0._r8
            loss(14) = (+ het_rates(124))* y(124)
            prod(14) = 0._r8
            loss(15) = (+ het_rates(125))* y(125)
            prod(15) = 0._r8
            loss(16) = (+ het_rates(126))* y(126)
            prod(16) = 0._r8
        END SUBROUTINE imp_prod_loss
    END MODULE mo_prod_loss
